package cn.com.anypay.manager.lakala.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * EC008电子合同内容参数
 * 特约商户支付服务合作协议V4.1（商户入网）
 *
 * @author Claude
 * @date 2024-01-15
 */
@Data
@Accessors(chain = true)
public class EC008Parameters implements Serializable {

    private static final long serialVersionUID = 1L;

    // ============ A系列参数 - 业务功能和费率设置 ============

    /**
     * A1: 签约商户的商户名称
     */
    @JsonProperty("A1")
    private String a1;

    /**
     * A2: 业务功能：消费类 - 银联境内卡支付业务
     */
    @JsonProperty("A2")
    private String a2;

    /**
     * A6: 收单手续费标准：银联借记卡
     */
    @JsonProperty("A6")
    private String a6;

    /**
     * A7: 收单手续费标准：银联借记卡费率
     */
    @JsonProperty("A7")
    private String a7;

    /**
     * A8: 收单手续费标准：银联借记卡封顶值
     */
    @JsonProperty("A8")
    private String a8;

    /**
     * A9: 收单手续费标准：银联贷记卡
     */
    @JsonProperty("A9")
    private String a9;

    /**
     * A10: 收单手续费标准：银联贷记卡费率
     */
    @JsonProperty("A10")
    private String a10;

    /**
     * A29: 扫码支付业务：支付宝收单手续费率
     */
    @JsonProperty("A29")
    private String a29;

    /**
     * A30: 扫码支付业务：微信收单手续费率
     */
    @JsonProperty("A30")
    private String a30;

    /**
     * A31: 扫码支付业务：京东收单手续费率
     */
    @JsonProperty("A31")
    private String a31;

    /**
     * A32: 扫码支付业务：拉卡拉钱包收单手续费率
     */
    @JsonProperty("A32")
    private String a32;

    /**
     * A33: 扫码支付业务：数字人民币收单手续费率
     */
    @JsonProperty("A33")
    private String a33;

    /**
     * A96: 默认结算模式选择（必填）
     * T0: T0结算
     * T1: T1结算
     */
    @JsonProperty("A96")
    private String a96;

    /**
     * A97: 退货业务开通选择
     */
    @JsonProperty("A97")
    private String a97;

    /**
     * A104: 甲方签约年
     */
    @JsonProperty("A104")
    private Integer a104;

    /**
     * A105: 甲方签约月
     */
    @JsonProperty("A105")
    private Integer a105;

    /**
     * A106: 甲方签约日
     */
    @JsonProperty("A106")
    private Integer a106;

    /**
     * A107: 乙方签约年
     */
    @JsonProperty("A107")
    private Integer a107;

    /**
     * A108: 乙方签约月
     */
    @JsonProperty("A108")
    private Integer a108;

    /**
     * A109: 乙方签约日
     */
    @JsonProperty("A109")
    private Integer a109;

    // ============ B系列参数 - 商户信息和终端配置 ============

    /**
     * B1: 商户注册登记表的年（必填）
     */
    @JsonProperty("B1")
    private Integer b1;

    /**
     * B2: 商户注册登记表的月（必填）
     */
    @JsonProperty("B2")
    private Integer b2;

    /**
     * B3: 登记类型选择
     */
    @JsonProperty("B3")
    private String b3;

    /**
     * B8: 商户工商注册名称
     */
    @JsonProperty("B8")
    private String b8;

    /**
     * B9: 主营业务（必填）
     */
    @JsonProperty("B9")
    private String b9;

    /**
     * B10: 商户对外经营名称（必填）
     */
    @JsonProperty("B10")
    private String b10;

    /**
     * B11: 办公地址
     */
    @JsonProperty("B11")
    private String b11;

    /**
     * B12: 办公电话
     */
    @JsonProperty("B12")
    private String b12;

    /**
     * B13: 营业地址
     */
    @JsonProperty("B13")
    private String b13;

    /**
     * B14: 营业执照号
     */
    @JsonProperty("B14")
    private String b14;

    /**
     * B15: 经营网址
     */
    @JsonProperty("B15")
    private String b15;

    /**
     * B16: 结算账户名称
     */
    @JsonProperty("B16")
    private String b16;

    /**
     * B17: 结算账户类型
     */
    @JsonProperty("B17")
    private String b17;

    /**
     * B18: 结算账户联系人
     */
    @JsonProperty("B18")
    private String b18;

    /**
     * B19: 开户行
     */
    @JsonProperty("B19")
    private String b19;

    /**
     * B20: 结算账号
     */
    @JsonProperty("B20")
    private String b20;

    /**
     * B24: 法人姓名
     */
    @JsonProperty("B24")
    private String b24;

    /**
     * B25: 法人证件号
     */
    @JsonProperty("B25")
    private String b25;

    /**
     * B26: 法人手机
     */
    @JsonProperty("B26")
    private String b26;

    /**
     * B27: 联系人姓名
     */
    @JsonProperty("B27")
    private String b27;

    /**
     * B28: 联系人邮箱
     */
    @JsonProperty("B28")
    private String b28;

    /**
     * B29: 联系人证件号
     */
    @JsonProperty("B29")
    private String b29;

    /**
     * B30: 联系人手机
     */
    @JsonProperty("B30")
    private String b30;

    // ============ C系列参数 - 受益人和关键人员信息 ============

    /**
     * C1: 受益人1姓名
     */
    @JsonProperty("C1")
    private String c1;

    /**
     * C2: 受益人1持股比例
     */
    @JsonProperty("C2")
    private String c2;

    /**
     * C3: 受益人1证件类型
     */
    @JsonProperty("C3")
    private String c3;

    /**
     * C4: 受益人1证件号
     */
    @JsonProperty("C4")
    private String c4;

    /**
     * C5: 受益人1证件有效期
     */
    @JsonProperty("C5")
    private String c5;

    /**
     * C6: 受益人1地址
     */
    @JsonProperty("C6")
    private String c6;

    /**
     * C13: 高级管理人员1姓名
     */
    @JsonProperty("C13")
    private String c13;

    /**
     * C14: 高级管理人员1证件类型
     */
    @JsonProperty("C14")
    private String c14;

    /**
     * C15: 高级管理人员1证件号
     */
    @JsonProperty("C15")
    private String c15;

    /**
     * C16: 高级管理人员1证件有效期
     */
    @JsonProperty("C16")
    private String c16;

    /**
     * C17: 高级管理人员1职务
     */
    @JsonProperty("C17")
    private String c17;

    /**
     * C18: 高级管理人员1地址
     */
    @JsonProperty("C18")
    private String c18;

    // ============ D系列参数 - 授权信息 ============

    /**
     * D1: 授权书（银行）签章日期（必填）
     */
    @JsonProperty("D1")
    private String d1;

    /**
     * D2: 授权书（银行）法人姓名
     */
    @JsonProperty("D2")
    private String d2;

    /**
     * D3: 授权书（银行）开户行名称
     */
    @JsonProperty("D3")
    private String d3;

    /**
     * D4: 授权书（数据处理方）商户名称（必填）
     */
    @JsonProperty("D4")
    private String d4;

    /**
     * D5: 授权书（数据处理方）法人姓名（必填）
     */
    @JsonProperty("D5")
    private String d5;

    /**
     * D6: 授权书（数据处理方）营业执照号
     */
    @JsonProperty("D6")
    private String d6;

    /**
     * D7: 授权书（数据处理方）签章日期（必填）
     */
    @JsonProperty("D7")
    private String d7;

    /**
     * D8: 授权书（外卡业务）签章日期
     */
    @JsonProperty("D8")
    private String d8;

    /**
     * D9: 授权书（外卡业务）法人姓名
     */
    @JsonProperty("D9")
    private String d9;

    /**
     * D10: 授权书（开通微信、支付宝收单）签章日期
     */
    @JsonProperty("D10")
    private String d10;

    /**
     * D11: 授权书（开通微信、支付宝收单）法人姓名
     */
    @JsonProperty("D11")
    private String d11;

    /**
     * D12: 电子签约授权委托书签章日期（必填）
     */
    @JsonProperty("D12")
    private String d12;
}